/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tlp.ucsur.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import tlp.ucsur.beans.TipoUsuarioBean;
import tlp.ucsur.conexion.DBConnection;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Administrador
 */
public class MySqlTipoUsuarioDAOImpl implements TipoUsuarioDAO {

  @Override
  public TipoUsuarioBean getTipoUsuario(int codigoTipoUsuario) {
    String sql = "select * from tipousuario where idtipoUsuario=?";
    try {
      //obtener la conexion
      Connection conn = DBConnection.getConnection();
      //Obtenemos a sentencia Java
      PreparedStatement ps = conn.prepareStatement(sql);
      //setear los parametros dinamicos
      ps.setInt(1, codigoTipoUsuario);
      //Ejecutar la sentencia
      ResultSet rs = ps.executeQuery();
      //Recorrer el cursor        
      if (rs.next()) {
        TipoUsuarioBean tipo_usuario = new TipoUsuarioBean();
        tipo_usuario.setCodigoTUsuario(rs.getInt("idtipoUsuario"));
        tipo_usuario.setNombreTUsuario(rs.getString("nombreTUsuario"));
        tipo_usuario.setDescripTUsuario(rs.getString("descripcionTUsuario"));

        return tipo_usuario;
      }
      rs.close();
      ps.close();
      conn.close();
    } catch (Exception ex) {
    }
    return null;
  }

  @Override
  public List<TipoUsuarioBean> getListaTipoUsuario() {

    List<TipoUsuarioBean> lista_tipo_usuario = new ArrayList<TipoUsuarioBean>();
    String sql = "select * from tipousuario";

    try {
      Connection conn = DBConnection.getConnection();
      PreparedStatement ps = conn.prepareStatement(sql);

      ResultSet rs = ps.executeQuery();

      while (rs.next()) {

        TipoUsuarioBean tipo_usuario = new TipoUsuarioBean();
        tipo_usuario.setCodigoTUsuario(rs.getInt("idtipoUsuario"));
        tipo_usuario.setNombreTUsuario(rs.getString("nombreTUsuario"));
        tipo_usuario.setDescripTUsuario(rs.getString("descripcionTUsuario"));
        lista_tipo_usuario.add(tipo_usuario);
      }
      rs.close();
      ps.close();
      conn.close();
      return lista_tipo_usuario;
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    return null;
  }

    @Override
    public void insertar(TipoUsuarioBean tipousuario) {
        String sql ="insert into tipousuario(nombreTUsuario,descripcionTUsuario)values"
                + "(?,?)";
        try{
            Connection conn= DBConnection.getConnection();
         
            PreparedStatement ps= conn.prepareStatement(sql);
            ps.setString(1, tipousuario.getNombreTUsuario());
            ps.setString(2, tipousuario.getDescripTUsuario());
            
            ps.executeUpdate();
            
            ps.close();
            conn.close();
        }catch(Exception ex){
            ex.printStackTrace();
        }

  }

  @Override
  public void eliminar(String codigoTipoUsiario) {

    String sql = "delete from tipousuario where idtipoUsuario=?";

    try {
      Connection conn = DBConnection.getConnection();
      PreparedStatement sp = conn.prepareStatement(sql);
      sp.executeUpdate(sql);

      sp.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }

  }

  @Override
  public void actualizar(TipoUsuarioBean tipousuario) {
    String sql = "update tipousuario set nombreTUsuario=?, descripcionTUsuario=? where idtipoUsuario=?";
    try {
      Connection conn = DBConnection.getConnection();
      PreparedStatement ps = conn.prepareStatement(sql);
      ps.setString(1, tipousuario.getNombreTUsuario());
      ps.setString(2, tipousuario.getDescripTUsuario());
      ps.setInt(3, tipousuario.getCodigoTUsuario());
      ps.executeUpdate(sql);
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}
